package com.campus.config;

import com.campus.properties.AliOssProperties;
import com.campus.utils.AliOssUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * 配置类，用于创建 AliOssUtil 对象
 * @author TaiZai
 * @data 2024/10/6 19:06
 */
// @Configuration 注解在 Spring 框架中用于定义配置类，相当于传统的 XML 配置文件。
// 使用 @Configuration 注解的类可以包含一些用 @Bean 注解的方法，这些方法将会定义 Spring 容器中的 Bean。
// 这些 Bean 可以像在 XML 配置文件中一样进行自动装配。
@Configuration
@Slf4j
public class OssConfiguration {

    @Bean
    @ConditionalOnMissingBean // 保证整个Spring容器中只有这个一个对象
    public AliOssUtil aliOssUtil(AliOssProperties aliOssProperties) {
        return new AliOssUtil(aliOssProperties.getEndpoint(),
                aliOssProperties.getAccessKeyId(),
                aliOssProperties.getAccessKeySecret(),
                aliOssProperties.getBucketName());
    }
}
